#include <stdio.h>

// 函数声明
int MinIndex(int a[], int n);
void swap(int a[], int i, int j);
void InputArr(int a[], int n);
void DisplayArr(int a[], int n);

int main() {
    int a[100]; // 假设数组最大长度为100
    int n;

    // 从用户处获取数组长度
    printf("请输入元素的个数: ");
    scanf("%d", &n);

    // 输入数组元素¡¡¡¡
    InputArr(a, n);

    // 打印原始数组
    printf("原始数组: ");
    DisplayArr(a, n);

    // 获取最小元素的下标
    int minIndex = MinIndex(a, n);

    // 交换最小元素和第一个元素
    swap(a, 0, minIndex);

    // 打印交换后的数组
    printf("交换后的数组: ");
    DisplayArr(a, n);

    return 0;
}

// 返回最小元素的下标
int MinIndex(int a[], int n) {
    int minIndex = 0;
    for (int i = 1; i < n; i++) {
        if (a[i] < a[minIndex]) {
            minIndex = i;
        }
    }
    return minIndex;
}

// 交换数组中的两个元素
void swap(int a[], int i, int j) {
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;
}

// 读入n个整数存入数组a
void InputArr(int a[], int n) {
    for (int i = 0; i < n; i++) {
        printf("第 %d 个整数: ", i + 1);
        scanf("%d", &a[i]);
    }
}

// 输出数组a的前n个元素
void DisplayArr(int a[], int n) {
    for (int i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");
}
